package com.cpe.web.controller.physique;

import static org.springframework.web.bind.annotation.RequestMethod.*;

import javax.annotation.Resource;

import org.springframework.web.bind.annotation.RequestMapping;

import org.springframework.web.bind.annotation.RestController;
import com.cpe.data.domain.physique.desc.PhysiqueDesc;
import com.cpe.data.domain.physique.desc.PhysiqueDescUniqueQuery;
import com.cpe.repository.mapper.physique.PhysiqueDescMapper;
import com.cpe.transfer.physique.PhysiqueDescTransfer;
import com.sql.data.response.JsonResponse;

import jodd.util.StringUtil;

/**
 * 体质项目成绩描述
 *
 */
@RestController
@RequestMapping("/physique_descs")
public class PhysiqueDescController {

	@Resource
	private PhysiqueDescMapper physiqueDescMapper;

	@Resource
	private PhysiqueDescTransfer physiqueDescTransfer;

	@RequestMapping(value = "/unique", method = GET)
	public JsonResponse getOne(PhysiqueDescUniqueQuery query) {
		PhysiqueDesc physiqueDesc = new PhysiqueDesc();
		if (StringUtil.isNotBlank(query.getPhysiqueName())) {
			physiqueDesc.setPhysiqueName(query.getPhysiqueName());
		} else {
			return JsonResponse.invalid("体质名称不能为空！");
		}
		if (query.getValue() != null) {
			physiqueDesc.setValue(query.getValue());
		} else {
			return JsonResponse.invalid("分值不能为空！");
		}
		if (query.getPhysiqueName().equals("体型")) {
			if (query.getLowOrHigh() != null) {
				physiqueDesc.setLowOrHigh(query.getLowOrHigh());
			} else {
				return JsonResponse.invalid("偏高偏低不能为空！");
			}
		}
		physiqueDesc = physiqueDescMapper.findOne(physiqueDesc);
		if (physiqueDesc == null) {
			return JsonResponse.ok();
		}
		return JsonResponse.ok(physiqueDescTransfer.toInfo(physiqueDesc));
	}
}
